Desktop computers are expensive and difficult to maintain and generally offer far more computing power than is needed by a single user. The ability to share this computing power by locally connecting extra users to this PC is desirable.
Simultaneous sharing of a single personal computer via a single running instance of the operating system by multiple locally connected users is also known and growing in popularity. Companies such as Userful, Ncomputing, Windows MultiPoint Server 2010, have successfully commercialized this technology. In these situations several keyboards mice and monitors are locally connected to a single personal computer and groupings of these devices are created such that multiple users can independently operate these groupings. Generally such sharing is achieved by running a single instance of a single operating system that is used to create and regulate the assignment and grouping of devices as they are added or removed from the system.
Connecting multiple input devices (e.g., keyboards and mice) and multiple output devices (e.g., monitors) to a single computer for use by a single user has also been a common application for a long period of time. Many computers have connections to support two or more monitors. Typically this is used to create an “Extended desktop” that spans across multiple monitors. The user chooses which monitors to use for a specific task and drags windows from one monitor to another as needed. With the advent of USB keyboards and mice it is easy to connect two or more keyboards to a computer. A laptop user might employ a second full-sized keyboard and mouse for personal convenience in input and output.
The concept of a Virtual Machine, VM, which forms part of this invention, has considerable history. First conceived in the 1960s by IBM as a way to allow multiple users to employ a small part of a main frame computer as if they had their own computer (machine), it has since been developed as a method of allowing a second operating system (Guest OS) to run simultaneously with the primary OS of the computer (Host OS). While the Guest OS appears to the user to be running independently it is at a basic level under the control of the Host OS. Many modern virtual machines (e.g., VMWare and VirtualBox) allow Host OS users to allocate and dedicate specific devices from the Host PC (e.g., a USB storage drive) to be accessible and controlled by the Guest OS. On a desktop PC, VM software was traditionally run to enable a single user of the Host OS to switch between the various running Guest OS instances. With VM software a single user sitting in front of their console would only be able to interact with one operating system at a time, although they could switch between these active operating systems.
In case an individual has licensed an operating system for a home PC or laptop, it would be helpful to have an easy way to share that computer with a visitor or family member by running a second open-source operating system, which when run as an application on the Host OS would provide a Guest OS for one or more locally connected additional users. The proposed invention offers a simple and convenient way to accomplish this at minimum expanse while completely preserving the integrity of the Host OS and any files it may contain.